"""
locELM: Local Extreme Learning Machines for PDEs

A Python package implementing domain decomposition and local extreme learning machines
for solving linear and nonlinear partial differential equations.

Based on the paper:
    "Local Extreme Learning Machines and Domain Decomposition for Solving
    Linear and Nonlinear Partial Differential Equations"
    Suchuan Dong and Zongwei Li, Purdue University, 2020
"""

__version__ = "1.0.0"
__author__ = "Implementation based on Dong & Li (2020)"

from .core.domain import Domain, CollocationPoints, SubdomainInterface
from .core.networks import LocalELMNetwork, MultiSubdomainNetwork
from .core.continuity import ContinuityConditions
from .solvers.linear import LinearPDESolver
from .solvers.nonlinear import NonlinearPDESolver
from .utils.helpers import (
    compute_errors,
    plot_solution_1d,
    plot_solution_2d,
    Timer,
    create_evaluation_function
)

__all__ = [
    'Domain',
    'CollocationPoints',
    'SubdomainInterface',
    'LocalELMNetwork',
    'MultiSubdomainNetwork',
    'ContinuityConditions',
    'LinearPDESolver',
    'NonlinearPDESolver',
    'compute_errors',
    'plot_solution_1d',
    'plot_solution_2d',
    'Timer',
    'create_evaluation_function',
]
